﻿Imports Biz
Imports BLL
Imports DAL


''' <summary>
''' Clase de gestión de lógica de negocio para la entidad Tipo de Documento
''' </summary>
''' <remarks></remarks>
Public Class GestorTipo_Documento

    Private Shared _instance As GestorTipo_Documento
    Private Shared m_semaforo As New Object

    Private _DALTipo_Documento As DALTipo_Documento

    ''' <summary>
    ''' Obtiene un objeto Departamento.
    ''' </summary>
    ''' <param name="oTipo_Documento">Objeto Departamento con la propiedad Dep_Codigo seteada
    ''' con el valor del Departamento a buscar.</param>
    ''' <returns>Objeto cEstado_Usuario con datos obtenidos desde la base de datos.</returns>
    ''' <remarks></remarks>
    Public Function Buscar(ByVal oTipo_Documento As cTipo_Documento) As cTipo_Documento

        Return _DALTipo_Documento.Sel(oTipo_Documento)

    End Function

    ''' <summary>
    ''' Realiza una llamada a la capa de acceso a datos DAL para consultar la lista de Tipos de Documento
    ''' </summary>
    ''' <returns>Colección de objetos de tipo cTipo_Documento</returns>
    ''' <remarks></remarks>
    Public Function Consultar() As Collection

        Return _DALTipo_Documento.SelectAll

    End Function

    ''' <summary>
    ''' Método estático Instance para exponer una única instancia de la clase GestorTipo_Documento
    ''' </summary>
    ''' <returns>Unica instancia de la clase GestorTipo_Documento</returns>
    ''' <remarks></remarks>
    Public Shared Function Instance() As GestorTipo_Documento
        If _instance Is Nothing Then
            SyncLock (m_semaforo)
                If _instance Is Nothing Then
                    _instance = New GestorTipo_Documento
                End If
            End SyncLock
        End If

        Return _instance
    End Function

    Private Sub New()
        _DALTipo_Documento = _DALTipo_Documento.Instance
    End Sub

End Class
